package com.upup.train_management.service;

import com.upup.train_management.entity.Schedule;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

public interface ScheduleService {
    List<Schedule> getAllSchedules();
    Schedule getScheduleById(Long id);
    Schedule saveSchedule(Schedule schedule);
    void deleteSchedule(Long id);
    List<Schedule> findSchedulesByTrainId(Long trainId);
    List<Schedule> findSchedulesByRouteId(Long routeId);
    List<Schedule> findSchedulesByDate(LocalDate date);
    List<Schedule> findSchedulesByDateRange(LocalDate startDate, LocalDate endDate);
    List<Schedule> searchSchedules(Long startStationId, Long endStationId, LocalDate date);
    List<Schedule> getActiveSchedules();
    int getAvailableSeats(Long scheduleId);
    boolean updateScheduleStatus(Long scheduleId, String status);
}